import Vue from 'vue'
import Vuex from 'vuex'
import cloneDeep from 'lodash/cloneDeep'
import user from './modules/user'
import imMessage from './modules/message/index' // 消息数据
import imUserList from './modules/userList/index' // 好友  群组数据

Vue.use(Vuex)

export default new Vuex.Store({
  namespaced: true,
  state: {
    // 导航条, 布局风格, default(白色) / colorful(鲜艳)
    navbarLayoutType: 'default',
    // 侧边栏, 布局皮肤, default(白色) / dark(黑色)
    sidebarLayoutSkin: 'default',
    // 布局, 布局皮肤, default(默认显示) / top(顶部显示)
    layoutType: 'default',
    // 侧边栏, 折叠状态
    sidebarFold: false,
    // 侧边栏, 菜单
    sidebarMenuList: [],
    // 顶部导航栏
    topSidebarMenuList: [],
    activeIndex: [],
    sidebarMenuActiveName: '',
    // 内容, 是否需要刷新
    contentIsNeedRefresh: false,
    // 内容, 标签页(默认添加首页)
    contentTabs: [
      {
        ...window.SITE_CONFIG['contentTabDefault'],
        'name': 'home',
        'title': 'home'
      }
    ],
    version: '1.0.0.0', // 版本号标识需不需要清除缓存
    contentTabsActiveName: 'home',
    // 默认路由 显示人员
    menuList: [
      {
        id: 'w_001',
        pid: '0',
        name: '862821165',
        url: null,
        type: 0,
        icon: 'icon-control',
        permissions: null,
        sort: 0,
        createDate: '2019-02-13 22:02:39',
        parentName: null,
        children: []
      }
    ]
  },
  modules: {
    user,
    imMessage,
    imUserList
  },
  mutations: {
    // 重置vuex本地储存状态
    resetStore (state) {
      Object.keys(state).forEach((key) => {
        state[key] = cloneDeep(window.SITE_CONFIG['storeState'][key])
      })
    }
  }
})
